﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <math.h>

//第一题求100以内奇数
//法一
//int main()
//{
//	int i = 0;
//	for (i = 0; i <= 100; i++)
//	{
//		if (i % 2 != 0)
//		{
//			printf("%d ", i);
//		}
//	}
//	return 0;
//}

//法二
//int main()
//{
//	int i = 0;
//	while (i % 2 == 0)
//	{
//		i=i+1;
//	}
//	for (; i <= 100; i+=2)
//	{
//		printf("%d ", i);
//	}
//}

//打印九九乘法表
//int main()
//{
//	int i = 1, j = 1;
//	for (i = 1; i <= 9; i++)
//	{
//		for (j = 1; j <= i; j++)
//		{
//			printf("%d*%d=%02d ", i, j, i * j);
//		}
//		printf("\n");
//	}
//	return 0;
//}

//使⽤C语⾔写⼀个程序打印100~200之间的素数，数字中间使⽤空格分割。
//int main()
//{
//	int i = 0;
//	int m = 0, j = 0;
//	int pan = 0;
//	for (i = 100; i <= 200; i++)
//	{
//		if (i % 2 != 0)
//		{
//			m = sqrt(i);
//			for (j = 2; j <= m; j++)
//			{
//				if (i % j == 0)
//				{
//					pan = 1;
//				}
//			}
//			if (pan == 0)
//			{
//				printf("%d ", i);
//			}
//			pan = 0;
//		}
//	}
//	return 0;
//}

//输⼊三个整数a,b,c，判断由a,b,c作为三条边组成的三⻆形，如果不能组成三⻆形则输出：⾮三⻆
//形；如果是三⻆形，再继续判断，如果是等边三⻆形，则输出：等边三⻆形；如果是等腰三⻆形，则
//输出：等腰三⻆形；否则输出普通三⻆形。
//int main()
//{
//	int a = 0, b = 0, c = 0;
//	scanf_s("%d %d %d", &a, &b, &c);
//	if (a + b > c && a + c > b && b + c > a && a - b < c && b - a < c && a - c < b && c - a < b && b - c < a && c - b < a)
//	{
//		
//		if (a == b || b == c || a == c)
//		{
//			if (a == b && b == c)
//			{
//				printf("等边三角形");
//			}
//			else
//			{
//				printf("等腰三角形");
//			}
//		}
//		else
//		{
//			printf("普通三角形");
//		}
//	}
//	else
//	{
//		printf("不是三角形");
//	}
//	return 0;
//}

//求出两个数的最⼤公约数
//暴力循环
//int main()
//{
//	int a = 0, b = 0;
//	int oc = 0;
//	scanf_s("%d %d", &a, &b);
//	if (a < b)
//	{
//		int c = 0;
//		c = b; b = a; a = c;
//	}
//	for (int i = 1; i < a; i++)
//	{
//		if (a % i == 0 && b % i == 0)
//		{
//			oc = i;
//		}
//	}
//	printf("%d", oc);
//	return 0;
//}

//辗转相除法
//int main()
//{
//	int a = 0, b = 0;
//	int oc = 0;
//	scanf_s("%d %d", &a, &b);
//	if (a < b)
//	{
//		int c = 0;
//		c = b; b = a; a = c;
//	}
//	while (a % b != 0)
//	{
//		a = a % b;
//		int c = 0;
//		c = b; b = a; a = c;
//	}
//	printf("%d", b);
//	return 0;
//}

//最大公倍数
//暴力寻找
int main()
{
	int a = 0, b = 0, c = 0;
	scanf("%d %d", &a, &b);
	c = (a > b ? a : b);
	for (; c % a == 0 && c & b == 0; c++)
	{
		
	}
	printf("%d", c);
	return 0;
}


//输出ASCII码
//int main()
//{
//	for (int i = 0; i < 128; i++)
//	{
//		printf("%c ", i);
//	}
//	return 0;
//}

////字符串练习
//int main()
//{
//	/*char arr1[] = "abcdef";
//	char arr2[] = { 'a','b','c','d','e','f','\0'};
//	printf("%s\n", arr1);
//	printf("%s\n", arr2);*/
//	printf("g");
//	return 0;
//}